package com.tiyende.kash.loop.ui.contract

import com.tiyende.kash.loop.base.BaseFragment
import com.tiyende.kash.loop.common.ICommonView
import org.json.JSONObject

/**
 * TiyendeCredit
 * @Author wwdeng
 * @CreateTime: 2024/12/19 14:39
 * @Annotation：View 接口聚合
 */
interface IViewContract {

    /**
     * 启动页
     */
    interface ITiyendeLaunchView: ICommonView {

        /**
         * 获取地区转发成功
         */
        fun showTiyendeLaunchTimeZoneRequestData(data: String)

        /**
         * 选择语言
         */
        fun showTiyendeLaunchLanguageDialog()

        /**
         * 进入引导页
         */
        fun showTiyendeLaunchGuidePage()

        /**
         * 进入登录页
         */
        fun showTiyendeLaunchLoginPage()

        /**
         * 进入主页
         */
        fun showTiyendeLaunchMainPage()

        /**
         * 提示版本更新
         */
        fun showTiyendeLaunchVersionUpdateDialog()
    }

    /**
     * 权限列表
     */
    interface ITiyendePermissionListView: ICommonView {
        /**
         * 设置权限列表
         */
        fun showTiyendePermissionList(pList: ArrayList<JSONObject>?)
    }

    /**
     * 登录
     */
    interface ITiyendeLoginView: ICommonView {

        /**
         * 获取输入的手机号码
         */
        fun getTiyendeLoginMobile(): String

        /**
         * 登录失败
         */
        fun showTiyendeLoginFailure(data: JSONObject)

        /**
         * 登录成功，进入欢迎页面
         */
        fun showTiyendeLoginMainPage()
    }

    /**
     * app tab
     */
    interface ITiyendeMainView : ICommonView {

        /**
         * 设置tabList
         */
        fun showTiyendeMainList(tabList: ArrayList<JSONObject>)

        /**
         * 刷新Tab
         */
        fun notifyTiyendeMainDataChanged(curtIndex: Int)

        /**
         * 显示对应页面
         */
        fun showTiyendeMainFragment(fragment: BaseFragment, index: Int)

        /**
         * 需要检验手机号
         */
        fun showTiyendeMainMustCheckMobilePage()
        /**
         * 需要进入风控审核中页面
         */
        fun showTiyendeMainReviewingPage()
        /**
         * 需要进入线下引导
         */
        fun showTiyendeMainGuideLocalPage()
    }

    /**
     * 首页(未授信、未借款、已借款)
     */
    interface ITiyendeWithdrawView: ICommonView {

        /**
         * 额度信息
         */
        fun showTiyendeLimitInfo(data: JSONObject)

        /**
         * 显示未授信Views
         */
        fun showTiyendeLimitCreditBeforViews(data: JSONObject)

        /**
         * 已授信ViewsViews
         */
        fun showTiyendeLimitCreditedViews(data: JSONObject)

        /**
         * 进入SMS、AppList权限页面
         */
        fun showTiyendeWithdrawPermissionPage()

        /**
         * 认证已完成 - 进入申贷页面
         */
        fun showTiyendeWithdrawApplyPage()

        /**
         * 认证未完成 - 进入认证页面
         */
        fun showTiyendeWithdrawAUthenticationStepsPage()
        /**
         * 已授信 && 拒绝
         */
        fun showTiyendeWithdrawCreditRejectedPage()
        /**
         * 进入授信中页面
         */
        fun showTiyendeWithdrawCreditReviewPage()
        /**
         * 存在被拒绝的订单，需要提示
         */
        fun showTiyendeWithdrawOrderRejectedDialog()
    }

    /**
     * 进件信息
     */
    interface ITiyendeAuthenticationView: ICommonView {

        /**
         * 进件流程已完成
         */
        fun showTiyendeAuthenticationStepCompleteViews()

        /**
         * 设置当前进度
         */
        fun showTiyendeAuthenticationStepProgress(total: Int, progress: Int)

        /**
         * 设置当前进行的认证内容
         */
        fun showTiyendeAuthenticationCurrentStep(icon: Int,title: String)

        /**
         * 移除所有Step
         */
        fun removeTiyendeAuthenticationStepAllViews()

        /**
         * 联系人
         */
        fun showTiyendeAuthenticationStepContactView(data: JSONObject)
        /**
         * 常用APP
         */
        fun showTiyendeAuthenticationStepUsedAppsView(data: JSONObject)
        /**
         * PAN Card
         */
        fun showTiyendeAuthenticationStepPanCardView(data: JSONObject)
        /**
         * Aadhaar Card
         */
        fun showTiyendeAuthenticationStepAadhaarCardView(data: JSONObject)
        /**
         * Selfie info
         */
        fun showTiyendeAuthenticationStepSelfieView(data: JSONObject)
        /**
         * 绑卡
         */
        fun showTiyendeAuthenticationStepBindWalletView(data: JSONObject)

        /**
         * 通用
         */
        fun showTiyendeAuthenticationStepCommonView(data: JSONObject)

        /**
         * 提交成功
         */
        fun showTiyendeAuthenticationStepSubmitSuccess()
    }

    interface ITiyendeAuthenticationStepWalletView: ICommonView {
        /**
         * 已绑定账户列表
         */
        fun showTiyendeAuthenticationStepWalletList(accountList: ArrayList<JSONObject>)
    }

    /**
     * 额度审核中
     */
    interface ITiyendeLimitReviewingView: ICommonView {

        /**
         * 授信中
         */
        fun showTiyendeLimitReviewingViews()

        /**
         * 已授信
         */
        fun showTiyendeLimitSuccessViews(data: JSONObject)

        /**
         * 额度审核失败
         */
        fun showTiyendeLimitFailedViews()

        /**
         * 申贷
         */
        fun showTiyendeLimitApplyPage()

        /**
         * 权限申请页面
         */
        fun showTiyendeLimitPermissionPage()
    }

    /**
     * 贷款申请
     */
    interface ITiyendeLoanApplyView: ICommonView {
        /**
         * 获取申请金额
         */
        fun getTiyendeLoanApplyAmount(): String

        /**
         * 获取申请贷款天数
         */
        fun getTiyendeLoanApplyDays(): String

        /**
         * 展示不可选贷款额度View
         */
        fun showTiyendeLoanApplyNotOptionalViews(data: JSONObject)

        /**
         * 展示可选额度View
         */
        fun showTiyendeLoanApplyOptionalViews(data: JSONObject, showAnim: Boolean)

        /**
         * 设置贷款明细
         */
        fun showTiyendeLoanApplyDetailsList(data: JSONObject)

        /**
         * 显示贷款申请成功
         */
        fun showTiyendeLoanApplySuccess()

        /**
         * 显示申请失败 订单状态 或 申请状态 验证不通过，需要返回首页显示对应页面
         */
        fun showTiyendeLoanApplyFailed()
    }

    /**
     * SMS,WhatsApp 校验
     */
    interface ITiyendeCheckMobileView: ICommonView {

        /**
         * 获取手机号码
         */
        fun getTiyendeCheckMobile(): String

        /**
         * 获取验证码
         */
        fun getTiyendeCheckMobileCode(): String

        /**
         * 切换选择类型：SMS、WHATSAPP
         */
        fun showTiyendeCheckMobileType(type: String,isSubTrack: Boolean)

        /**
         * 验证码发送成功
         */
        fun showTiyendeCheckMobileSendCodeSuccess(directLoginFlag: String)

        /**
         * Telegram Bot校验 链接
         */
        fun showTiyendeCheckMobileTelegramBotLink(linkUrl: String)

        /**
         * 选择出生日期
         */
        fun showTiyendeCheckMobileChooseBirthdayTipsDialog()

        /**
         * 校验成功
         */
        fun showTiyendeCheckMobileSuccess()
    }

    /**
     * 订单详情
     */
    interface ITiyendeOrderInfoView: ICommonView {
        //获取订单id
        fun getTiyendeOrderInfoId(): String
        /**
         * 共用View
         */
        fun showTiyendeOrderInfoCommonViews(obj: JSONObject)
        /**
         * 审核中
         */
        fun showTiyendeOrderInfoReviewingViews()
        /**
         * 放款中
         */
        fun showTiyendeOrderInfoDisbursingViews()
        /**
         * 已拒绝
         */
        fun showTiyendeOrderInfoRejectedViews(obj: JSONObject)
        /**
         * 待还款
         */
        fun showTiyendeOrderInfoRepayViews()
        /**
         * 账户列表
         */
        fun showTiyendeOrderInfoWalletList(accountList: ArrayList<JSONObject>)
        /**
         * 是否显示清除用户数据按钮
         */
        fun showTiyendeUserDataClearButton(isShow: Boolean)
        /**
         * 清除用户数据成功
         */
        fun showTiyendeUserDataClearSuccess()
    }

    /**
     * 订单还款状态PIN
     */
    interface ITiyendeOrderPayStatusView: ICommonView {

        /**
         * 原订单id
         */
        fun getTiyendeOrderPayStatusOrderId(): String

        /**
         * 共用View
         */
        fun showTiyendeOrderPayStatusCommonView(data: JSONObject)
        /**
         * 支付成功
         */
        fun showTiyendeOrderPayStatusSuccessView(data: JSONObject)

        /**
         * 支付失败
         */
        fun showTiyendeOrderPayStatusFailedView(data: JSONObject)

        /**
         * 支付处理中
         */
        fun showTiyendeOrderPayStatusProcessView(data: JSONObject)
    }

    /**
     * 意见反馈
     */
    interface ITiyendeFeedbackView : ICommonView {

        /**
         * 设置意见反馈类型列表
         */
        fun setTiyendeFeedbackQuestionTypeList(typeList: ArrayList<JSONObject>)

        /**
         * 提交反馈成功
         */
        fun showTiyendeFeedbackSubmitSuccess()
    }

    /**
     * 在线客服
     */
    interface ITiyendeCustomerChatView: ICommonView {
        /**
         * 设置消息列表
         */
        fun showCustomerChatList(recordList: ArrayList<JSONObject>)

        /**
         * 定时更新消息列表
         */
        fun showCustomerChatUpdateList(recordList: ArrayList<JSONObject>)

        /**
         * 插入一条新消息
         */
        fun addCustomerChatNewChat(item: JSONObject)

        /**
         * 发送消息成功
         */
        fun showCustomerChatSendSuccess()
    }

    /**
     * 图片上传
     */
    interface ITiyendeImageUploadView: ICommonView {
        /**
         * 图片上传成功
         */
        fun showTiyendeImageUploadSuccess(imgPath: String, imgUrl: String)
    }
}